#include "DL_OD_Handler.h"
#include "DL_EH.h"
DL_OD_STATE_TYPE DL_OD_State[PORT_NUM];
BOOL EventActive[PORT_NUM];

void DL_OD_Init(void){
   for(uint8_t i;i<PORT_NUM;i++){
       DL_OD_State[i]=OD_Inactive_0;
       EventActive[i]=False;
   }

}

//************************转移动作********************************/


void DL_OD_T2(uint8_t Port){
    Event_ISDUTrig(Port);
}


void DL_OD_T5(uint8_t Port){
    EventActive[Port]=True;
}

 
void DL_OD_T9(uint8_t Port){
    Event_CommandTrig(Port);
    
}
void DL_OD_T10(uint8_t Port){
	Event_EventTrig(Port);
	
}
/*********************驱动事件***********************************/

void Event_OH_Conf_ACTIVE(uint8_t Port){
    if(DL_OD_State[Port]==OD_Inactive_0){
       // DL_OD_T1(Port);
        DL_OD_State[Port]=ISDU_1;
    }
}
      
void Event_OH_Conf_INACTIVE(uint8_t Port){
 
      DL_OD_State[Port]=OD_Inactive_0;
   
}

void Event_ODTrig( uint8_t Port){
    if(DL_OD_State[Port]==ISDU_1){
        DL_OD_T2(Port);
       // DL_OD_State[Port]=ISDU_1;多余
    }
    if(DL_OD_State[Port]==Command_2){
        DL_OD_T9(Port);
      //  DL_OD_State[Port]=Command_2;
    }
    if(DL_OD_State[Port]==Event_3){
       DL_OD_T10(Port);
      // DL_OD_State[Port]=Event_3;
    }
}

void Event_Done( uint8_t Port){
     if(EventActive[Port]==True){ //如果事件Event还没处理完
			    DL_OD_State[Port]=Event_3;
			    EventActive[Port]=False;
			    
			 
		 }else{
			   DL_OD_State[Port]=ISDU_1;
			   
			 
		 }

}

void  Event_DL_Control(uint8_t Port){
	     
	     
	   
        //驱动OD状态机动作,等待OD_Trig
        DL_OD_State[Port]=Command_2;
       
}


 

void Event_Done_and_EventActive(uint8_t Port){
    if(DL_OD_State[Port]==Command_2){
        //DL_OD_T8(Port);
        DL_OD_State[Port]=Event_3;
    }
}


